var gulp = require('gulp');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var replace = require('gulp-replace'); //替换文件 内容

/********************* 在这里设置你的页面信息 ****************************************/
var YourPath = 'menu/';//设置你的路径；为空的话就是templates，js目录。例如‘personal/’一定要加结尾的/
var YourPageName = 'menu';//模块名。要用驼峰。大小写均可。
var YourDescribe = '测试';//模块注释
var YourEmail = 'zhiqiang.zhao@dhc.com.cn';//你的邮箱
var YourCreateTime = new Date().toLocaleString();//创建日期
/********************* 在这里设置你的页面信息 ****************************************/


/*************** 变量定义 *********************/
var pageNameLower = YourPageName.replace(/(\w)/, function (v) {
  return v.toLowerCase()
});
var pageNameUpper = YourPageName.replace(/(\w)/, function (v) {
  return v.toUpperCase()
});
var projectPath = '../www/';
var indexFilePath = '../www/index.html';
var routeFilePath = '../www/js/framework/ionicConfig/ConfigRoute.js';
var routePath = '../www/js/framework/ionicConfig/';
var indexInsertPoint = '<!-- 自动化脚本插入点-->';
var indexCode = '  <script src=\"js\/' + YourPath + pageNameUpper + '.js\"><\/script>';
var routeCodeInsertPoint = '//自动化脚本插入点';
var routeCode = '    .state(\'' + pageNameLower + '\', {' + '\r\n' +
  '     url: \'\/' + pageNameLower + '\', ' + '\r\n' +
  '     templateUrl:\'templates\/' + YourPath + pageNameUpper + '.html\', ' + '\r\n' +
  '     controller:\'' + pageNameUpper + 'Controller\'' + '\r\n' +
  '     })';
/*************** 变量定义 *********************/

gulp.task('default', ['template', 'js', 'index', 'route']);

gulp.task('template', function (done) {
  gulp.src('./data/Model.html')
    .pipe(rename({
      basename: pageNameUpper, extname: '.html'
    }))
    .pipe(gulp.dest('../www/templates/' + YourPath))
    .on('end', done);
});

gulp.task('js', function (done) {
  gulp.src('./data/Model.js')
    .pipe(rename({
      basename: pageNameUpper, extname: '.js'
    }))
    .pipe(replace('Test', pageNameUpper))                          //将模板里TestController、TestService替换
    .pipe(replace('chuanpeng.zhu', YourEmail))          //替换注释邮箱
    .pipe(replace(/create time:.*/g, 'create time:' + YourCreateTime))   //替换注释时间
    .pipe(replace(/describe:.*/g, 'describe:' + YourDescribe))    //替换注释时间
    .pipe(gulp.dest('../www/js/' + YourPath))
    .on('end', done);
});


gulp.task('index', function (done) {
  gulp.src(indexFilePath)
    .pipe(replace(indexInsertPoint, indexInsertPoint + '\r\n' + indexCode))      //插入js引用
    .pipe(gulp.dest(projectPath))
    .on('end', done);
});

gulp.task('route', function (done) {
  gulp.src(routeFilePath)
    .pipe(replace(routeCodeInsertPoint, routeCodeInsertPoint + '\r\n' + routeCode))     //插入路由
    .pipe(gulp.dest(routePath))
    .on('end', done);
});
